Packet data networks convey information from an originating device to a specified addressee by incorporating the information into packets. Each packet contains a preamble (control data) and information (message data). The preamble typically includes packet network control data, synchronization information and addressee destination information. The information portion contains the originating device's message.
The packet originated by the originator is typically not directly received by the addressee. The packet may be relayed by several intermediate stations before reaching the final addressee destination. As the transmission speeds of packet networks increase, it becomes increasingly important for relay stations to be able to efficiently handle and process packets.
In a direct method for handling packets, received packets are stored in a memory location. The destination of the packet contained at the preamble is checked as well as other packet network control information. Correct receipt or validation of the control information and the packet data information is checked. Assuming no errors are detected, a new packet corresponding to the received packet is created and stored in a different memory location for retransmission. At the appropriate time, the reconstituted packet is retransmitted by the relay station towards its final destination.
Packets are handled in a different manner in an Ethernet local area network. A buffer ring structure comprised of a series of contiguous fixed length byte buffers are utilized for storage of received packets. The beginning and end location of the stored packet is identified by addresses held in a page star and a page stop register. Successive buffers in the ring are utilized to store the packet. Multiple packets can be consecutively stored in the ring structure. The packets are normally removed from the receive buffer ring in FIFO order and are reconstituted in memory separate from this ring, prior to retransmission. Each of these steps are typically performed under the direction of the system's central processor.
On occasion the information (message data) portion of a data packet originated by an originating device is too large to fit into the message data portion of packets utilized by an intermediate relay station. In such instances the original data packet must be separated into N fragments prior to transmission by said intermediate relay station. Upon receipt, each of the N fragments must be reassembled in the correct order in order to recreate the original information data packet.
It will be appreciated that the handling of fragmented data packets adds additional strain on the processing resources of a receiving station attempting to validate correct reception, determine whether each fragment has been received, store each fragment in memory and reformulate new fragments corresponding to the received fragments, prior to their retransmission. It would be extremely advantageous therefore to provide an improved method for organizing and handling packets requiring reassembly that minimizes processor intervention as well as eliminates intermediate data transfers to additional memory locations prior to the reassembly and retransmission of information contained in an original data packet.